package com.cyh.testdesignpattern.strategy;

/**
 * 策略模式：
 *   例子：有各种鸭子，如野鸭、北京鸭、水鸭、玩具鸭， 鸭子有各种行为，如叫、飞、游泳。 目的：要显示鸭子的信息。
 *          因为他们的差异太大，所有他们都继承父类不合理。
 *          (认为所有的鸭子都会游泳，但不一定会叫和飞)
 *
 * 策略模式中， 定义算法族，分别封装起来，让他们之间可以相互替换，此模式让算法的变化独立于使用算法的客户。
 *   这算法体现了几个设计原则，第一，把变化的代码从不变的代码里面抽离出来；
 *                          第二，针对接口编程而不是具体类；
 *                          第三，多用组合/聚合，少用继承。
 *
 * */
public class Test17 {
}
